#pragma once

#include <semaphore.h>


class Sem
{
public:
    Sem(unsigned int value)
    {
        int n = sem_init(&_sem, 0, value);//pshared:0表⽰线程间共享，⾮零表⽰进程间共享
        (void)n;
    }

    void p()
    {
        int n = sem_wait(&_sem);
        (void)n;
    }

    void v()
    {        
        int n = sem_post(&_sem);
        (void)n; 
    }

    ~Sem()
    {
        int n = sem_destroy(&_sem);
        (void)n;
    }

private:
    sem_t _sem;
};
